package es.uji.viselab.experiment;

import es.uji.viselab.benchmark.BenchMarkingRecorder;
import es.uji.viselab.image.source.ImageSource;
import es.uji.viselab.robot.Robot;
import es.uji.viselab.visualservoing.VisualServoingTask;

public abstract class Experiment  {

	VisualServoingTask visualServoing;
	BenchMarkingRecorder benchmark;
	ExperimentParameters ep;
	int experimentId;
	Robot robot;

	Experiment(Robot robot,ExperimentParameters ep) {
		this.robot = robot;
		this.ep=ep;
	}

	Experiment(ExperimentParameters ep) {
		this.ep=ep;
		this.robot = null;
	}

	public void setRobot(Robot r) {
		this.robot = r;
	}

	public void setVisualServoing(VisualServoingTask vs) {
		this.visualServoing = vs;
	}

	public void setBenchmarkingSystem(BenchMarkingRecorder b) {
		this.benchmark = b;
	}

	
	public abstract void start();

	public void cameraFeaturePointsChanged(ImageSource i) {
	}

}
